package services.implementation;

import java.security.MessageDigest;
import java.security.NoSuchAlgorithmException;
import java.util.List;
import javax.faces.application.FacesMessage;
import javax.faces.context.FacesContext;

public class ForHelp {
    
    public String getHashMD5 (String str) {                
        MessageDigest md5 ;                
        StringBuilder hexString = new StringBuilder();                
        try {                                               
            md5 = MessageDigest.getInstance("md5");                     
            md5.reset();        
            md5.update(str.getBytes());   
            byte messageDigest[] = md5.digest();  
            for (int i = 0; i < messageDigest.length; i++) {   
                hexString.append(Integer.toHexString(0xFF & messageDigest[i]));   
            }                                                                      
        }         catch (NoSuchAlgorithmException e) {                            
            return e.toString();        
        }             
        return hexString.toString();   
    }


//    public static SelectItem[] getSelectItems(List<?> entities, boolean selectOne) {
//        int size = selectOne ? entities.size() + 1 : entities.size();
//        SelectItem[] items = new SelectItem[size];
//        int i = 0;
//        if (selectOne) {
//            items[0] = new SelectItem("", "---");
//            i++;
//        }
//        for (Object x : entities) {
//            items[i++] = new SelectItem(x, x.toString());
//        }
//        return items;
//    }

    public static void addErrorMessage(Exception ex, String defaultMsg) {
        String msg = ex.getLocalizedMessage();
        if (msg != null && msg.length() > 0) {
            addErrorMessage(msg);
        } else {
            addErrorMessage(defaultMsg);
        }
    }

    public static void addErrorMessages(List<String> messages) {
        for (String message : messages) {
            addErrorMessage(message);
        }
    }

    public static void addErrorMessage(String msg) {
        FacesMessage facesMsg = new FacesMessage(FacesMessage.SEVERITY_ERROR, msg, msg);
        FacesContext.getCurrentInstance().addMessage(null, facesMsg);
    }

    public static void addSuccessMessage(String msg) {
        FacesMessage facesMsg = new FacesMessage(FacesMessage.SEVERITY_INFO, msg, msg);
        FacesContext.getCurrentInstance().addMessage("successInfo", facesMsg);
    }

//    public static String getRequestParameter(String key) {
//        return FacesContext.getCurrentInstance().getExternalContext().getRequestParameterMap().get(key);
//    }
//
//    public static Object getObjectFromRequestParameter(String requestParameterName, Converter converter, UIComponent component) {
//        String theId = JsfUtil.getRequestParameter(requestParameterName);
//        return converter.getAsObject(FacesContext.getCurrentInstance(), component, theId);
//    }
}